package com.tancire.net.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.tancire.common.annotation.Excel;
import com.tancire.common.core.domain.BaseEntity;

/**
 * 客户管理对象 crm_company
 *
 * @author 陈超
 * @date 2023-12-24
 */
public class CrmCompany extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 主键
     */
    private Long id;

    /**
     * 账号
     */
    private String customerAccount;

    /**
     * 密码
     */
    private String customerPassword;

    /**
     * 客户名称
     */
    @Excel(name = "客户名称")
    private String customerName;

    /**
     * 客户类型 0 个人 1 企业
     */
    @Excel(name = "客户类型 0 个人 1 企业")
    private String customerType;

    /**
     * 认证编码（身份证号或企业统一社会编码）
     */
    @Excel(name = "认证编码", readConverterExp = "身=份证号或企业统一社会编码")
    private String customerCode;

    /**
     * 客户行业
     */
    @Excel(name = "客户行业")
    private String customerField;

    /**
     * 联系人
     */
    @Excel(name = "联系人")
    private String liaison;

    /**
     * 联系人手机号
     */
    @Excel(name = "联系人手机号")
    private String liaisonPhone;

    /**
     * 客户状态
     */
    @Excel(name = "客户状态")
    private Integer customerStatus;

    /**
     * 收益金额
     */
    @Excel(name = "收益金额")
    private BigDecimal revenuePrice;

    /**
     * 可提现金额
     */
    @Excel(name = "可提现金额")
    private BigDecimal withdrawAmount;

    /**
     * 昨日预计收益金额
     */
    @Excel(name = "昨日预计收益金额")
    private BigDecimal todayRevenuePrice;

    /**
     * 收益费率
     */
    @Excel(name = "收益费率")
    private BigDecimal revenueRate;

    /**
     * 审核状态 0 待审核 1 已审核 2 审核失败
     */
    @Excel(name = "审核状态 0 待审核 1 已审核 2 审核失败")
    private String processStatus;

    /**
     * 是否可以登录 0 否 1 是
     */
    @Excel(name = "是否可以登录 0 否 1 是")
    private Integer canLogin;

    /**
     * 小程序认证状态 0 否 1 是
     */
    @Excel(name = "小程序认证状态 0 否 1 是")
    private Integer miniAppStatus;

    /**
     * 小程序认证时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @Excel(name = "小程序认证时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss")
    private Date miniAppTime;

    /**
     * 小程序账号ID
     */
    @Excel(name = "小程序账号ID")
    private Long miniAppId;

    /**
     * 小程序账号
     */
    private String miniAppAccount;

    /**
     * 小程序认证码
     */
    @Excel(name = "小程序认证码")
    private String miniAppCode;

    /**
     * 银行名称
     */
    @Excel(name = "银行名称")
    private String bankName;

    /**
     * 卡号
     */
    @Excel(name = "卡号")
    private String bankAccount;

    /**
     * 银行卡人名
     */
    @Excel(name = "银行卡人名")
    private String bankUserName;

    /**
     * 开户行
     */
    @Excel(name = "开户行")
    private String bankAddress;

    /**
     * 0 正常  1 删除  真删除，字段保留
     */
    private Integer delFlag;

    public String getMiniAppAccount() {
        return miniAppAccount;
    }

    public void setMiniAppAccount(String miniAppAccount) {
        this.miniAppAccount = miniAppAccount;
    }

    public void setId(Long id) {
        this.id = id;
    }

    public Long getId() {
        return id;
    }

    public String getCustomerAccount() {
        return customerAccount;
    }

    public void setCustomerAccount(String customerAccount) {
        this.customerAccount = customerAccount;
    }

    public String getCustomerPassword() {
        return customerPassword;
    }

    public void setCustomerPassword(String customerPassword) {
        this.customerPassword = customerPassword;
    }

    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    public String getCustomerName() {
        return customerName;
    }

    public void setCustomerType(String customerType) {
        this.customerType = customerType;
    }

    public String getCustomerType() {
        return customerType;
    }

    public void setCustomerCode(String customerCode) {
        this.customerCode = customerCode;
    }

    public String getCustomerCode() {
        return customerCode;
    }

    public void setCustomerField(String customerField) {
        this.customerField = customerField;
    }

    public String getCustomerField() {
        return customerField;
    }

    public void setLiaison(String liaison) {
        this.liaison = liaison;
    }

    public String getLiaison() {
        return liaison;
    }

    public void setLiaisonPhone(String liaisonPhone) {
        this.liaisonPhone = liaisonPhone;
    }

    public String getLiaisonPhone() {
        return liaisonPhone;
    }

    public void setCustomerStatus(Integer customerStatus) {
        this.customerStatus = customerStatus;
    }

    public Integer getCustomerStatus() {
        return customerStatus;
    }

    public void setRevenuePrice(BigDecimal revenuePrice) {
        this.revenuePrice = revenuePrice;
    }

    public BigDecimal getRevenuePrice() {
        return revenuePrice;
    }

    public void setWithdrawAmount(BigDecimal withdrawAmount) {
        this.withdrawAmount = withdrawAmount;
    }

    public BigDecimal getWithdrawAmount() {
        return withdrawAmount;
    }

    public void setTodayRevenuePrice(BigDecimal todayRevenuePrice) {
        this.todayRevenuePrice = todayRevenuePrice;
    }

    public BigDecimal getTodayRevenuePrice() {
        return todayRevenuePrice;
    }

    public void setRevenueRate(BigDecimal revenueRate) {
        this.revenueRate = revenueRate;
    }

    public BigDecimal getRevenueRate() {
        return revenueRate;
    }

    public void setProcessStatus(String processStatus) {
        this.processStatus = processStatus;
    }

    public String getProcessStatus() {
        return processStatus;
    }

    public void setCanLogin(Integer canLogin) {
        this.canLogin = canLogin;
    }

    public Integer getCanLogin() {
        return canLogin;
    }

    public void setMiniAppStatus(Integer miniAppStatus) {
        this.miniAppStatus = miniAppStatus;
    }

    public Integer getMiniAppStatus() {
        return miniAppStatus;
    }

    public void setMiniAppTime(Date miniAppTime) {
        this.miniAppTime = miniAppTime;
    }

    public Date getMiniAppTime() {
        return miniAppTime;
    }

    public void setMiniAppId(Long miniAppId) {
        this.miniAppId = miniAppId;
    }

    public Long getMiniAppId() {
        return miniAppId;
    }

    public void setMiniAppCode(String miniAppCode) {
        this.miniAppCode = miniAppCode;
    }

    public String getMiniAppCode() {
        return miniAppCode;
    }

    public void setBankName(String bankName) {
        this.bankName = bankName;
    }

    public String getBankName() {
        return bankName;
    }

    public void setBankAccount(String bankAccount) {
        this.bankAccount = bankAccount;
    }

    public String getBankAccount() {
        return bankAccount;
    }

    public void setBankUserName(String bankUserName) {
        this.bankUserName = bankUserName;
    }

    public String getBankUserName() {
        return bankUserName;
    }

    public void setBankAddress(String bankAddress) {
        this.bankAddress = bankAddress;
    }

    public String getBankAddress() {
        return bankAddress;
    }

    public void setDelFlag(Integer delFlag) {
        this.delFlag = delFlag;
    }

    public Integer getDelFlag() {
        return delFlag;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE)
                .append("id", getId())
                .append("customerName", getCustomerName())
                .append("customerType", getCustomerType())
                .append("customerCode", getCustomerCode())
                .append("customerField", getCustomerField())
                .append("liaison", getLiaison())
                .append("liaisonPhone", getLiaisonPhone())
                .append("customerStatus", getCustomerStatus())
                .append("revenuePrice", getRevenuePrice())
                .append("withdrawAmount", getWithdrawAmount())
                .append("todayRevenuePrice", getTodayRevenuePrice())
                .append("revenueRate", getRevenueRate())
                .append("processStatus", getProcessStatus())
                .append("canLogin", getCanLogin())
                .append("miniAppStatus", getMiniAppStatus())
                .append("miniAppTime", getMiniAppTime())
                .append("miniAppId", getMiniAppId())
                .append("miniAppCode", getMiniAppCode())
                .append("bankName", getBankName())
                .append("bankAccount", getBankAccount())
                .append("bankUserName", getBankUserName())
                .append("bankAddress", getBankAddress())
                .append("createTime", getCreateTime())
                .append("createBy", getCreateBy())
                .append("updateTime", getUpdateTime())
                .append("updateBy", getUpdateBy())
                .append("delFlag", getDelFlag())
                .toString();
    }
}
